package 炫彩元素类

import (
	xc "gitee.com/go_888/xcgui/xcgui/xc"
	xcc "gitee.com/go_888/xcgui/xcgui/xcc"
)

// X结构_表格 表格.
type X结构_表格 struct {
	X结构_形状对象基类
}

// 表格_创建.
//
// x: 按钮x坐标.
//
// y: 按钮y坐标.
//
// cx: 宽度.
//
// cy: 高度.
//
// hParent: 父为窗口句柄或元素句柄.
func X创建表格(x坐标, y坐标, 宽度, 高度 int32, 父窗口句柄 int) *X结构_表格 {
	p := &X结构_表格{}
	p.X设置句柄(xc.X表格_创建(x坐标, y坐标, 宽度, 高度, 父窗口句柄))
	return p
}

// 从句柄创建对象.
func X创建表格并按句柄(句柄 int) *X结构_表格 {
	p := &X结构_表格{}
	p.X设置句柄(句柄)
	return p
}

// 从name创建对象, 失败返回nil.
func X创建表格并按名称(名称 string) *X结构_表格 {
	handle := xc.X取对象并按名称(名称)
	if handle > 0 {
		p := &X结构_表格{}
		p.X设置句柄(handle)
		return p
	}
	return nil
}

// 从UID创建对象, 失败返回nil.
func X创建表格并按UID(UID int32) *X结构_表格 {
	handle := xc.X取对象并按UID(UID)
	if handle > 0 {
		p := &X结构_表格{}
		p.X设置句柄(handle)
		return p
	}
	return nil
}

// 从UID名称创建对象, 失败返回nil.
func X创建表格并按UID名称(名称 string) *X结构_表格 {
	handle := xc.X取对象并按UID名称(名称)
	if handle > 0 {
		p := &X结构_表格{}
		p.X设置句柄(handle)
		return p
	}
	return nil
}

// 表格_重置.
//
// nRow: 行数量.
//
// nCol: 列数量.
func (t *X结构_表格) X重置(行数量 int32, 列数量 int32) *X结构_表格 {
	xc.X表格_重置(t.X句柄, 行数量, 列数量)
	return t
}

// 表格_组合行.
//
// iRow: 行索引.
//
// iCol: 列索引.
//
// count: 数量.
func (t *X结构_表格) X组合行(行索引 int32, 列索引 int32, 数量 int32) *X结构_表格 {
	xc.X表格_组合行(t.X句柄, 行索引, 列索引, 数量)
	return t
}

// 表格_组合列.
//
// iRow: 行索引.
//
// iCol: 列索引.
//
// count: 数量.
func (t *X结构_表格) X组合列(行索引, 列索引, 数量 int32) *X结构_表格 {
	xc.X表格_组合列(t.X句柄, 行索引, 列索引, 数量)
	return t
}

// 表格_置列宽.
//
// iCol: 列索引.
//
// width: 宽度.
func (t *X结构_表格) X设置列宽(列索引, 宽度 int32) *X结构_表格 {
	xc.X表格_设置列宽(t.X句柄, 列索引, 宽度)
	return t
}

// 表格_置行高.
//
// iRow: 行索引.
//
// height: 高度.
func (t *X结构_表格) X设置行高(行索引, 高度 int32) *X结构_表格 {
	xc.X表格_设置行高(t.X句柄, 行索引, 高度)
	return t
}

// 表格_置边颜色.
//
// color: 颜色.
func (t *X结构_表格) X设置边颜色(颜色 int) *X结构_表格 {
	xc.X表格_设置边颜色(t.X句柄, 颜色)
	return t
}

// 表格_置文本颜色.
//
// color: 颜色.
func (t *X结构_表格) X设置文本颜色(颜色 int) *X结构_表格 {
	xc.X表格_设置文本颜色(t.X句柄, 颜色)
	return t
}

// 表格_置字体.
//
// hFont: 字体句柄.
func (t *X结构_表格) X设置字体(字体句柄 int) *X结构_表格 {
	xc.X表格_设置字体(t.X句柄, 字体句柄)
	return t
}

// 表格_置项内填充.
//
// leftSize: 内填充大小.
//
// topSize: 内填充大小.
//
// rightSize: 内填充大小.
//
// bottomSize: 内填充大小.
func (t *X结构_表格) X设置项内填充(左, 上, 右, 下 int32) *X结构_表格 {
	xc.X表格_设置项内填充(t.X句柄, 左, 上, 右, 下)
	return t
}

// 表格_置项文本.
//
// iRow: 行索引.
//
// iCol: 列索引.
//
// pText: 文本.
func (t *X结构_表格) X设置项文本(行索引, 列索引 int32, 文本 string) *X结构_表格 {
	xc.X表格_设置项文本(t.X句柄, 行索引, 列索引, 文本)
	return t
}

// 表格_置项字体.
//
// iRow: 行索引.
//
// iCol: 列索引.
//
// hFont: 字体句柄.
func (t *X结构_表格) X设置项字体(行索引, 列索引 int32, 字体句柄 int) *X结构_表格 {
	xc.X表格_设置项字体(t.X句柄, 行索引, 列索引, 字体句柄)
	return t
}

// 表格_置项文本对齐.
//
// iRow: 行索引.
//
// iCol: 列索引.
//
// nAlign: 对齐方式, TextFormatFlag_, TextAlignFlag_, TextTrimming_.
func (t *X结构_表格) X设置项文本对齐(行索引, 列索引 int32, 对齐方式 xcc.X文本对齐) *X结构_表格 {
	xc.X表格_设置项文本对齐(t.X句柄, 行索引, 列索引, 对齐方式)
	return t
}

// 表格_置项文本色.
//
// iRow: 行索引.
//
// iCol: 列索引.
//
// color: 颜色.
//
// bColor: 是否使用.
func (t *X结构_表格) X设置项文本色(行索引, 列索引 int32, 颜色 int, 是否使用 bool) *X结构_表格 {
	xc.X表格_设置项文本色(t.X句柄, 行索引, 列索引, 颜色, 是否使用)
	return t
}

// 表格_置项背景色.
//
// iRow: 行索引.
//
// iCol: 列索引.
//
// color: 颜色.
//
// bColor: 是否使用.
func (t *X结构_表格) X设置项背景色(行索引, 列索引 int32, 颜色 int, 是否使用 bool) *X结构_表格 {
	xc.X表格_设置项背景色(t.X句柄, 行索引, 列索引, 颜色, 是否使用)
	return t
}

// 表格_置项线.
//
// iRow1: 行索引1.
//
// iCol1: 列索引1.
//
// iRow2: 行索引2.
//
// iCol2: 列索引2.
//
// nFlag: 标识, Table_Line_Flag_, 暂时没有, 填0.
//
// color: 颜色.
func (t *X结构_表格) X设置项线(行索引1, 列索引1, 行索引2, 列索引2 int32, 标识 int32, 颜色 int) *X结构_表格 {
	xc.X表格_设置项线(t.X句柄, 行索引1, 列索引1, 行索引2, 列索引2, 标识, 颜色)
	return t
}

// 表格_置项标识.
//
// iRow: 行索引.
//
// iCol: 列索引.
//
// flag: 标识, Table_Flag_.
func (t *X结构_表格) X设置项标识(行索引, 列索引 int32, 标识 xcc.X形状表格标识) *X结构_表格 {
	xc.X表格_设置项标识(t.X句柄, 行索引, 列索引, 标识)
	return t
}

// 表格_取项坐标.
//
// iRow: 行索引.
//
// iCol: 列索引.
//
// pRect: 接收返回坐标.
func (t *X结构_表格) X取项坐标(行索引, 列索引 int32, 返回矩形 *xc.X结构_矩形) bool {
	return xc.X表格_取项坐标(t.X句柄, 行索引, 列索引, 返回矩形)
}

// 表格_取行数.
func (t *X结构_表格) GetRowCount() int32 {
	return xc.XTable_GetRowCount(t.X句柄)
}

// 表格_取列数.
func (t *X结构_表格) GetColCount() int32 {
	return xc.XTable_GetColCount(t.X句柄)
}

// 表格_置项文本Ex.
//
// iRow: 行索引.
//
// iCol: 列索引.
//
// pText: 文本.
//
// textColor: 文本颜色, xc.RGBA 颜色.
//
// bkColor: 背景颜色, xc.RGBA 颜色.
//
// bTextColor: 是否使用文本颜色.
//
// bBkColor: 是否使用背景颜色.
//
// hFont: 炫彩字体句柄, 可为0.
func (t *X结构_表格) SetItemTextEx(iRow, iCol int32, pText string, textColor, bkColor int, bTextColor, bBkColor bool, hFont int) *X结构_表格 {
	xc.XTable_SetItemTextEx(t.X句柄, iRow, iCol, pText, textColor, bkColor, bTextColor, bBkColor, hFont)
	return t
}
